Needs["ErrorBarPlots`"]

Here is some trial data.  Replace it with your own.

x={0.8,2.0,3.0,3.8,5.1,6.1};
y={4.3,5.6,12.3,13.0,18.7,19.1};
σ={1.5,2.1,1.3,2.3,2.8,1.6};
num = Length[x];

data=Table[{x[[i]],y[[i]]},{i,1,Length[x]}]

ListPlot[data,PlotMarkers->Automatic,AxesOrigin->{0,0}]

Let' s use the traditional least - squares technique to find the :
   	intercept :  a ± δa    and
	slope :         b ± δb.

delta =(∑_(i=1)^num)(1/((σ[[i]])^2)) (∑_(i=1)^num)(((x[[i]])^2)/((σ[[i]])^2)) - ((((∑_(i=1)^num)((x[[i]])/((σ[[i]])^2))))^2);
a1 = (1/delta)((∑_(i=1)^num)(((x[[i]])^2)/((σ[[i]])^2)) (∑_(i=1)^num)((y[[i]])/((σ[[i]])^2)) - (∑_(i=1)^num)((x[[i]])/((σ[[i]])^2)) (∑_(i=1)^num)((x[[i]] y[[i]])/((σ[[i]])^2)));
b1 = (1/delta)((∑_(i=1)^num)(1/((σ[[i]])^2)) (∑_(i=1)^num)((x[[i]] y[[i]])/((σ[[i]])^2)) - (∑_(i=1)^num)((x[[i]])/((σ[[i]])^2)) (∑_(i=1)^num)((y[[i]])/((σ[[i]])^2)));
deltaa = (Sqrt[(1/delta)(∑_(i=1)^num)(((x[[i]])^2)/((σ[[i]])^2))]);
deltab = (Sqrt[(1/delta)(∑_(i=1)^num)(1/((σ[[i]])^2))]);
Print["Intercept  a =  ",a1, "  ± ",deltaa]
Print["Slope      b = ",b1, " ± ",deltab]

error = Table[ErrorBar[σ[[i]]],{i,1,Length[x]}];

data2 = Table[{{data[[i,1]],data[[i,2]]},error[[i]]},{i,1,Length[x]}];

g1=Plot[a1 + b1 x,{x,0,6},Epilog->Prepend[Point/@data,PointSize[0.013]],AxesOrigin->{0.,0.}]

data2

g2=ErrorListPlot[data2,AxesOrigin->{0.,0.}]

Show[g1,g2]